2023년 1월 15일
링크 : https://school.programmers.co.kr/learn/courses/30/lessons/17681
function solution(n, arr1, arr2) {
// 숫자를 2진수로 바꾸고 만약 x의 length가 n보다 작다면 n만큼 0을 붙여줍니다
const changedArr = (arr = []) => {
// 받은 배열을 map
const newArr = arr.map(x => {
// 1. 2진수로 바꿉니다
x = x.toString(2)
// 만약 숫자가 작다면 n의 길이로 만들어줍니다
if (x.length !== n) {
const addZero = '0'.repeat(n - x.length)
x = addZero + String(x)
}
return x
})
return newArr
}
const newArr1 = changedArr(arr1)
const newArr2 = changedArr(arr2)
// 배열을 겹쳐 지도를 만듭니다
const overlapArr = (arr1 = [], arr2 = []) => {
const map = arr1.map((x, xIdx) => {
const mapLine = x.split('').map((y, yIdx) => {
if (Number(arr1[xIdx][yIdx]) + Number(arr2[xIdx][yIdx]) === 0) {
return ' '
} else {
return '#'
}
})
return mapLine.join('')
})
return map
}
return overlapArr(newArr1, newArr2)
}
어떻게 풀어야하는지는 머리속에서 바로 떠올랐지만, 다소 무식하게 푼 느낌이 있습니다.
여전히 다른사람들의 풀이를 보면 신가할 따름입니다.
그래도 이정도면 하루10분 말랑말랑하게 풀만 할 것 같습니다.